fn main() {
    let a = 1;
    let b = &a;
    let mut c = &b;
    let d = b;

    let e = &&100;
    c = e;

    println!("addr of c: {:p}", c);
    println!("addr of e: {:p}", e);
    println!("v of 100: {}", **e);
    println!("addr of 100: {:p}", &(**e));
    println!("addr of 100(*c): {:p}", *c);
    println!("addr of 100(*e): {:p}", *e);
}

// let mut msg = String::from("Hello");
// let msg2 = &mut msg;

// // 解引用后push
// (*msg2).push_str(" World");

// println!("{}", msg2);

// let a = 10;
// let b = &a;

// println!("{}", a == *b);
